﻿using System.Collections.Generic;
using System.Linq;

namespace WB.Core.BoundedContexts.Designer.Implementation.Services
{
    public class CountryItem
    {
        public CountryItem(string code, string? title)
        {
            Code = code;
            Title = title;
        }

        public string Code { get; set; }
        public string? Title { get; set; }
    }

    public static class CountryListProvider
    {
        public static List<CountryItem> GetCountryItems()
        {
            var codes = GetCountryCodes();
            return codes.Select(code =>
            {
                var item = new CountryItem (code, Resources.Country.ResourceManager.GetString(code));
                return item;
            }).ToList();
        }

        public static string? GetCountryTitleByCode(string code)
        {
            return Resources.Country.ResourceManager.GetString(code);
        }

        public static List<string> GetCountryCodes()
        {
            return new List<string>()
            {
                "AFG",
                "AFR",
                "ALB",
                "DZA",
                "ASM",
                "AND",
                "AGO",
                "AIA",
                "ATA",
                "ATG",
                "ARG",
                "ARM",
                "ABW",
                "AUS",
                "AUT",
                "AZE",
                "BHS",
                "BHR",
                "BGD",
                "BRB",
                "BLR",
                "BEL",
                "BLZ",
                "BEN",
                "BMU",
                "BTN",
                "BOL",
                "BIH",
                "BWA",
                "BVT",
                "BRA",
                "IOT",
                "VGB",
                "BRN",
                "BGR",
                "BFA",
                "BDI",
                "KHM",
                "CMR",
                "CAN",
                "CYM",
                "CAF",
                "TCD",
                "CHL",
                "CHN",
                "CXR",
                "CCK",
                "COL",
                "COM",
                "COD",
                "COG",
                "COK",
                "CRI",
                "CIV",
                "HRV",
                "CUB",
                "CYP",
                "CZE",
                "DNK",
                "DJI",
                "DMA",
                "DOM",
                "ECU",
                "EGY",
                "SLV",
                "GNQ",
                "ERI",
                "EST",
                "ETH",
                "ECA",
                "FRO",
                "FLK",
                "FJI",
                "FIN",
                "FRA",
                "FXX",
                "GUF",
                "PYF",
                "ATF",
                "GAB",
                "GMB",
                "GEO",
                "DEU",
                "GHA",
                "GIB",
                "GRC",
                "GRL",
                "GRD",
                "GLP",
                "GUM",
                "GTM",
                "GIN",
                "GNB",
                "GUY",
                "HTI",
                "HMD",
                "VAT",
                "HND",
                "HKG",
                "HUN",
                "ISL",
                "IND",
                "IDN",
                "IRN",
                "IRQ",
                "IRL",
                "ISR",
                "ITA",
                "JAM",
                "JPN",
                "JER",
                "JOR",
                "KAZ",
                "KEN",
                "KIR",
                "PRK",
                "KOR",
                "KSV",
                "KWT",
                "KGZ",
                "LAO",
                "LAC",
                "LVA",
                "LBN",
                "LSO",
                "LBR",
                "LBY",
                "LIE",
                "LTU",
                "LUX",
                "MAC",
                "MKD",
                "MDG",
                "MWI",
                "MYS",
                "MDV",
                "MLI",
                "MLT",
                "MHL",
                "MTQ",
                "MRT",
                "MUS",
                "MYT",
                "MEX",
                "FSM",
                "MDA",
                "MCO",
                "MNG",
                "MNE",
                "MSR",
                "MAR",
                "MOZ",
                "MMR",
                "MNP",
                "NAM",
                "NRU",
                "NPL",
                "ANT",
                "NLD",
                "NCL",
                "NZL",
                "NIC",
                "NER",
                "NGA",
                "NIU",
                "NFK",
                "NOR",
                "OMN",
                "PAK",
                "PLW",
                "PAN",
                "PNG",
                "PRY",
                "PER",
                "PHL",
                "PCN",
                "POL",
                "PRT",
                "PRI",
                "QAT",
                "CPV",
                "ROM",
                "RUS",
                "RWA",
                "SGS",
                "WSM",
                "SMR",
                "STP",
                "SAU",
                "SEN",
                "SRB",
                "SCG",
                "SYC",
                "SLE",
                "SGP",
                "SVK",
                "SVN",
                "SLB",
                "SOM",
                "ZAF",
                "SSD",
                "ESP",
                "LKA",
                "SHN",
                "LCA",
                "SPM",
                "VCT",
                "KNA",
                "SDN",
                "SUR",
                "SJM",
                "SWZ",
                "SWE",
                "CHE",
                "SYR",
                "TWN",
                "TJK",
                "TZA",
                "THA",
                "TLS",
                "TGO",
                "TKL",
                "TON",
                "TTO",
                "TUN",
                "TUR",
                "TKM",
                "TCA",
                "TUV",
                "UGA",
                "UKR",
                "ARE",
                "GBR",
                "USA",
                "URY",
                "UMI",
                "UZB",
                "VUT",
                "VEN",
                "VNM",
                "VIR",
                //"VGB1",
                "WLF",
                "PSE",
                "ESH",
                "WBG",
                "WLD",
                "YEM",
                "ZMB",
                "ZWE",
            };
        }
    }
}
